João Victor Vieira Passon
Jupyter Notebook para a visualização e resposta da Questão 1 do Case de Mercado de Combustíveis.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdate
import plotly.graph_objects as go
import plotly.express as px
import matplotlib.patches as mpatches
pd.set_option('display.max_rows', None)
directory = "dados_desafiodatascientistintern_vendas_distribuidoras_anp.xlsx"
def clean_data(directory, sheet_name):
df = pd.read_excel(directory, sheet_name=sheet_name)
df = df.melt(id_vars=['regiao', 'meses'], var_name='year', value_name='quantity')
df['data'] = pd.to_datetime(df['year'].map(str) + "-" + df['meses'].map(str))
df['product'] = sheet_name
return df
combustiveis = pd.DataFrame()
for i in ['diesel', 'gasolina', 'etanol']:
h = clean_data(directory=directory,
sheet_name=i)
combustiveis = pd.concat([combustiveis, h], axis=0)
combustiveis.set_index('data', inplace=True)
combustiveis.head()
| regiao | meses | year | quantity | product | |
|---|---|---|---|---|---|
| data | |||||
| 2000-01-01 | df | 1 | 2000 | 23310.896 | diesel |
| 2000-02-01 | df | 2 | 2000 | 25967.743 | diesel |
| 2000-03-01 | df | 3 | 2000 | 24590.674 | diesel |
| 2000-04-01 | df | 4 | 2000 | 24975.963 | diesel |
| 2000-05-01 | df | 5 | 2000 | 27224.597 | diesel |
combustiveis.dtypes
regiao object meses int64 year object quantity float64 product object dtype: object
combustiveis.year = pd.to_numeric(combustiveis.year)
combustiveis.dtypes
regiao object meses int64 year int64 quantity float64 product object dtype: object
combustiveis.isna().sum()
regiao 0 meses 0 year 0 quantity 0 product 0 dtype: int64
Com base nas interpretações dos dados obtidos com a série podemos extrai que:
A série dos combustíveis (Gasolina + Etanol + Diesel) é não estacionária e com tendência positiva;
No país, historicamente, o consumo de diesel se concentrou próximo a 55%, chegando quase aos 60% do total entre 2000-2005. Após esse período verifica-se uma diminuição de sua parte chegando ao menor valor da série: 48% em 2019;
A queda desse consumo não foi resultado de uma maior participação do consumo de gasolina, que se manteve ao longo da série próxima de 35%, mas ao ganho proporcional do consumo de Etanol. Esse ganho pode ser verificado pelo crescimento de 7% do total em 2000 para 15% em 2020, mais que dobrando sua porção. É importante ressaltar que o consumo da Gasolina também variou conforme alterações no consumo do Etanol;
A partir dos levantamentos da própria Agencia Nacional do Petróleo (ANP), o preço médio de distribuição para Gasolina, Etanol e Óleo Diesel em agosto de 2020 atingiram os valores respectivos: 3,78/l, 2,40/l e 3,05/l. Assim, considerando que 1m³=1000l, chegamos a mais de 135 bilhões de reais para o mercado de Gasolina, 46 bilhões de reais para o mercado de Etanol e 175 bilhões de reais para o mercado de Diesel. Com isso, totaliza mais de R$ 356 bilhões para todos eles.
Quanto a sazonalidade do consumo de cada tipo de combustível:
A Gasolina parece apresentar sazonalidade com picos de consumos no último mês do ano e queda nos dois primeiros meses do ano seguinte;
Para o Etanol, mesmo com ligeiro crescimento, a mesma situação é observada;
Já para o Diesel, observamos uma sazonalidade diferente das anteriores. Ele tende a apresenta queda a partir décimo mês do ano, queda que se estendendo até o primeiro mês do ano seguinte. Somente a partir do segundo mês observa-se um aumento de seu consumo.
Uma observação interessante a partir da visualização da série é que em períodos de alto consumo de Gasolina o consumo de Etanol tendeu ter seu crescimento de consumo modesto - quando não estagnou. Ele só obteve picos quando o consumo da Gasolina teve queda sendo características de bens substitutos.
comb_agrup = combustiveis.groupby(by=["regiao", 'year']).sum().sort_index(level=["regiao", 'year']).drop('meses', axis=1)
comb_agrup['variacao_ano'] = ((comb_agrup.groupby(by=['regiao']).diff().quantity / comb_agrup.quantity).fillna(0)).round(3) * 100
print("Tabela Combustível Geral: Gasolina + Diesel + Etanol")
comb_agrup.filter(like="br", axis=0).style.format({'variacao_ano': '{:.2f} %'}).background_gradient(cmap='Greens', subset=['variacao_ano'])
Tabela Combustível Geral: Gasolina + Diesel + Etanol
| quantity | variacao_ano | ||
|---|---|---|---|
| regiao | year | ||
| br | 2000 | 62385044.452000 | 0.00 % |
| 2001 | 62737898.146000 | 0.60 % | |
| 2002 | 64070484.445000 | 2.10 % | |
| 2003 | 61889228.477000 | -3.50 % | |
| 2004 | 66912479.263000 | 7.50 % | |
| 2005 | 67387867.626000 | 0.70 % | |
| 2006 | 69202583.791000 | 2.60 % | |
| 2007 | 75250463.924000 | 8.00 % | |
| 2008 | 83228830.755400 | 9.60 % | |
| 2009 | 86178500.707000 | 3.40 % | |
| 2010 | 94157004.711000 | 8.50 % | |
| 2011 | 98654387.813000 | 4.60 % | |
| 2012 | 105448258.700000 | 6.40 % | |
| 2013 | 111753694.638000 | 5.60 % | |
| 2014 | 117389979.553000 | 4.80 % | |
| 2015 | 116211011.447000 | -1.00 % | |
| 2016 | 111883496.127000 | -3.90 % | |
| 2017 | 112563598.809000 | 0.60 % | |
| 2018 | 113365965.607000 | 0.70 % | |
| 2019 | 118007534.589000 | 3.90 % | |
| 2020 | 112553602.991000 | -4.80 % |
discr_comb = combustiveis.groupby(by=['regiao', 'year', 'product']).sum().drop('meses', axis=1)
discr_comb['part_anual'] = combustiveis.groupby(by=['regiao', 'year', 'product'])['quantity'].sum() / combustiveis.groupby(by=['regiao', 'year', 'product'])['quantity'].sum().groupby(level=[0, 1]).transform("sum")
print("Discriminação por Tipo:")
discr_comb.filter(like='br', axis=0)
Discriminação por Tipo:
| quantity | part_anual | |||
|---|---|---|---|---|
| regiao | year | product | ||
| br | 2000 | diesel | 3.515126e+07 | 0.563457 |
| etanol | 4.603588e+06 | 0.073793 | ||
| gasolina | 2.263019e+07 | 0.362750 | ||
| 2001 | diesel | 3.702490e+07 | 0.590152 | |
| etanol | 3.501993e+06 | 0.055819 | ||
| gasolina | 2.221100e+07 | 0.354028 | ||
| 2002 | diesel | 3.766835e+07 | 0.587920 | |
| etanol | 3.791880e+06 | 0.059183 | ||
| gasolina | 2.261026e+07 | 0.352897 | ||
| 2003 | diesel | 3.685325e+07 | 0.595471 | |
| etanol | 3.245322e+06 | 0.052438 | ||
| gasolina | 2.179065e+07 | 0.352091 | ||
| 2004 | diesel | 3.922567e+07 | 0.586224 | |
| etanol | 4.512926e+06 | 0.067445 | ||
| gasolina | 2.317388e+07 | 0.346331 | ||
| 2005 | diesel | 3.916715e+07 | 0.581220 | |
| etanol | 4.667223e+06 | 0.069259 | ||
| gasolina | 2.355349e+07 | 0.349521 | ||
| 2006 | diesel | 3.900840e+07 | 0.563684 | |
| etanol | 6.186553e+06 | 0.089398 | ||
| gasolina | 2.400763e+07 | 0.346918 | ||
| 2007 | diesel | 4.155818e+07 | 0.552265 | |
| etanol | 9.366836e+06 | 0.124475 | ||
| gasolina | 2.432545e+07 | 0.323260 | ||
| 2008 | diesel | 4.476395e+07 | 0.537842 | |
| etanol | 1.329010e+07 | 0.159681 | ||
| gasolina | 2.517478e+07 | 0.302477 | ||
| 2009 | diesel | 4.429846e+07 | 0.514031 | |
| etanol | 1.647095e+07 | 0.191126 | ||
| gasolina | 2.540909e+07 | 0.294843 | ||
| 2010 | diesel | 4.923904e+07 | 0.522946 | |
| etanol | 1.507430e+07 | 0.160097 | ||
| gasolina | 2.984366e+07 | 0.316956 | ||
| 2011 | diesel | 5.226391e+07 | 0.529768 | |
| etanol | 1.089922e+07 | 0.110479 | ||
| gasolina | 3.549126e+07 | 0.359753 | ||
| 2012 | diesel | 5.590036e+07 | 0.530121 | |
| etanol | 9.850180e+06 | 0.093412 | ||
| gasolina | 3.969771e+07 | 0.376466 | ||
| 2013 | diesel | 5.857250e+07 | 0.524121 | |
| etanol | 1.175496e+07 | 0.105186 | ||
| gasolina | 4.142624e+07 | 0.370692 | ||
| 2014 | diesel | 6.003162e+07 | 0.511386 | |
| etanol | 1.299412e+07 | 0.110692 | ||
| gasolina | 4.436425e+07 | 0.377922 | ||
| 2015 | diesel | 5.721087e+07 | 0.492302 | |
| etanol | 1.786274e+07 | 0.153710 | ||
| gasolina | 4.113740e+07 | 0.353989 | ||
| 2016 | diesel | 5.427857e+07 | 0.485135 | |
| etanol | 1.458584e+07 | 0.130366 | ||
| gasolina | 4.301908e+07 | 0.384499 | ||
| 2017 | diesel | 5.477229e+07 | 0.486590 | |
| etanol | 1.364177e+07 | 0.121192 | ||
| gasolina | 4.414953e+07 | 0.392219 | ||
| 2018 | diesel | 5.562947e+07 | 0.490707 | |
| etanol | 1.938472e+07 | 0.170992 | ||
| gasolina | 3.835178e+07 | 0.338301 | ||
| 2019 | diesel | 5.729845e+07 | 0.485549 | |
| etanol | 2.254405e+07 | 0.191039 | ||
| gasolina | 3.816504e+07 | 0.323412 | ||
| 2020 | diesel | 5.747206e+07 | 0.510619 | |
| etanol | 1.925793e+07 | 0.171100 | ||
| gasolina | 3.582361e+07 | 0.318280 |
brasil = combustiveis[combustiveis['regiao'] == 'br']
fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, figsize=(16,10))
ax1.plot(brasil[brasil['product'] == 'gasolina'].quantity)
ax1.plot(brasil[brasil['product'] == 'etanol'].quantity)
ax1.plot(brasil[brasil['product'] == 'diesel'].quantity)
ax1.set_title("Venda de Combustível por Tipo", fontsize=16, pad=10)
ax1.set_ylabel("m³ (em milhões)", fontsize=12)
ax1.legend(['Gasolina', 'Etanol', 'Diesel'], fontsize=12)
ax2.plot(brasil[brasil['product'] == 'gasolina'].quantity.loc["2004-01-01":"2006-12-01"])
ax2.plot(brasil[brasil['product'] == 'etanol'].quantity.loc["2004-01-01":"2006-12-01"])
ax2.plot(brasil[brasil['product'] == 'diesel'].quantity.loc["2004-01-01":"2006-12-01"])
ax2.set_title("Venda de Combustível por Tipo (2004 à 2006)", fontsize=16, pad=10)
ax2.set_ylabel("m³ (em milhões)", fontsize=12)
ax2.legend(['Gasolina', 'Etanol', 'Diesel'], fontsize=12)
ax2.set_xticks(brasil.loc["2004-01-01":"2006-12-01"].index)
ax2.xaxis.set_major_formatter(mdate.DateFormatter("%m/%y"))
ax2.xaxis.set_tick_params(rotation=45)
plt.tight_layout();
fig = px.line(brasil, y="quantity", x="meses", color="year", facet_row="product", height=800, template="simple_white")
fig.update_xaxes(title="Mês do Ano", dtick=1)
fig.update_yaxes(title="m³ (em milhões)")
fig.update_layout(title={
'text': "Variação no Ano",
'y':0.95,
'x':0.5,
'xanchor': 'center',
'yanchor': 'top'})
fig.show()
Com base nas interpretações dos dados obtidos com a série podemos extrai que:
A distribuição do consumo entre as unidades da federação não é a mesma;
Estados como Goiás, Mato Grosso e São Paulo apresentam uma maior participação do consumo de Etanol do que Gasolina. Enquanto Distrito Federal, Maranhão e Pará apresentam o contrário;
Dentro das próprias regiões podemos verificar diferenças, por exemplo, o consumo para os três tipos de combustíveis parece ficar próximo em São Paulo, no entanto, para Minas Gerais, existe um equilíbrio entre o consumo de Gasolina e Etanol, mas uma maior participação consistente em relação ao Diesel;
Outro exemplo é Goiás e Distrito Federal, enquanto o consumo de Diesel de Goiás tende a ficar próximo de 50%, o consumo do mesmo item no Distrito Federal não atinge 25%;
Em relação ao crescimento de mercado a mesma coisa pode ser observada. Se pegarmos as movimentações de 2019 para 2020 vemos que Distrito Federal, Minas Gerais e São Paulo caíram em relação ao ano anterior. Por outro lado, Tocantins, Pará, Mato Grosso e Maranhão tiveram crescimento nesse período. Porém, esse crescimento não foi suficiente para evitar a queda nacional, isso evidencia o tamanho do mercado de Minas Gerais e São Paulo e em como afetam nacionalmente;
Ao pegarmos o período de 5 anos, de 2016 à 2020, e observarmos nacionalmente concluímos que o mercado teve um leve crescimento, com período de expansão e contração entre esses anos. No entanto, ao visualizarmos essas alterações para os estados, vemos um crescimento para quem faz parte das regiões Norte, Nordeste e Centro-Oeste, exceto Distrito Federal. Enquanto estados como São Paulo vinha crescendo, mas, no ano da Pandemia, obteve uma queda para valores menores do que os observados em 2016.
Quanto a sazonalidade do consumo de cada tipo de combustível:
Entre os estados da mesma região parecem possuir certa semelhança nos padrões;
Os estados aparentam seguir os mesmos padrões de sazonalidades observadas para o Brasil, com a Gasolina e o Etanol apresentando expressivo crescimento no último mês do ano e queda até o segundo mês do ano subsequente;
O Diesel segue a mesma linha apresentando queda a partir décimo mês do ano e isso se extende até o primeiro mês do ano seguinte. Somente a partir do segundo mês observa-se um aumento de seu consumo.
comb_agrup[comb_agrup.index.isin([2020, 2019, 2018, 2017, 2016], level=1)].style.format({'variacao_ano': '{:.2f} %'}).background_gradient(cmap='Greens', subset=['variacao_ano'])
| quantity | variacao_ano | ||
|---|---|---|---|
| regiao | year | ||
| br | 2016 | 111883496.127000 | -3.90 % |
| 2017 | 112563598.809000 | 0.60 % | |
| 2018 | 113365965.607000 | 0.70 % | |
| 2019 | 118007534.589000 | 3.90 % | |
| 2020 | 112553602.991000 | -4.80 % | |
| df | 2016 | 1629212.372000 | -3.20 % |
| 2017 | 1668038.806447 | 2.30 % | |
| 2018 | 1624815.930000 | -2.70 % | |
| 2019 | 1676706.521000 | 3.10 % | |
| 2020 | 1447082.247000 | -15.90 % | |
| go | 2016 | 5166357.849000 | -8.70 % |
| 2017 | 5253745.062050 | 1.70 % | |
| 2018 | 5425591.264000 | 3.20 % | |
| 2019 | 5675349.963000 | 4.40 % | |
| 2020 | 5647902.684000 | -0.50 % | |
| ma | 2016 | 2205863.220000 | -3.80 % |
| 2017 | 2295223.408528 | 3.90 % | |
| 2018 | 2375550.393000 | 3.40 % | |
| 2019 | 2373366.847000 | -0.10 % | |
| 2020 | 2402571.875000 | 1.20 % | |
| mg | 2016 | 12754056.554000 | -2.10 % |
| 2017 | 12919054.191925 | 1.30 % | |
| 2018 | 12858456.531000 | -0.50 % | |
| 2019 | 13427645.182000 | 4.20 % | |
| 2020 | 12974372.578000 | -3.50 % | |
| mt | 2016 | 3801218.864000 | -3.60 % |
| 2017 | 4011279.429755 | 5.20 % | |
| 2018 | 4202447.164000 | 4.50 % | |
| 2019 | 4411784.636000 | 4.70 % | |
| 2020 | 4590797.455000 | 3.90 % | |
| pa | 2016 | 3331585.866000 | -5.20 % |
| 2017 | 3365648.214547 | 1.00 % | |
| 2018 | 3488838.311000 | 3.50 % | |
| 2019 | 3667066.495000 | 4.90 % | |
| 2020 | 3870696.505000 | 5.30 % | |
| sp | 2016 | 30281834.008000 | -3.30 % |
| 2017 | 30209141.981453 | -0.20 % | |
| 2018 | 30495159.956000 | 0.90 % | |
| 2019 | 32062649.162000 | 4.90 % | |
| 2020 | 29428592.679000 | -9.00 % | |
| to | 2016 | 1233083.040000 | -4.80 % |
| 2017 | 1319567.551847 | 6.60 % | |
| 2018 | 1348818.557000 | 2.20 % | |
| 2019 | 1425564.939000 | 5.40 % | |
| 2020 | 1519775.626000 | 6.20 % |
discr_comb[discr_comb.index.isin([2020, 2019, 2018], level=1)]
| quantity | part_anual | |||
|---|---|---|---|---|
| regiao | year | product | ||
| br | 2018 | diesel | 5.562947e+07 | 0.490707 |
| etanol | 1.938472e+07 | 0.170992 | ||
| gasolina | 3.835178e+07 | 0.338301 | ||
| 2019 | diesel | 5.729845e+07 | 0.485549 | |
| etanol | 2.254405e+07 | 0.191039 | ||
| gasolina | 3.816504e+07 | 0.323412 | ||
| 2020 | diesel | 5.747206e+07 | 0.510619 | |
| etanol | 1.925793e+07 | 0.171100 | ||
| gasolina | 3.582361e+07 | 0.318280 | ||
| df | 2018 | diesel | 3.663959e+05 | 0.225500 |
| etanol | 1.676294e+05 | 0.103168 | ||
| gasolina | 1.090791e+06 | 0.671332 | ||
| 2019 | diesel | 3.757483e+05 | 0.224099 | |
| etanol | 1.778438e+05 | 0.106067 | ||
| gasolina | 1.123114e+06 | 0.669834 | ||
| 2020 | diesel | 3.506858e+05 | 0.242340 | |
| etanol | 1.497711e+05 | 0.103499 | ||
| gasolina | 9.466254e+05 | 0.654161 | ||
| go | 2018 | diesel | 2.685955e+06 | 0.495053 |
| etanol | 1.516565e+06 | 0.279521 | ||
| gasolina | 1.223071e+06 | 0.225426 | ||
| 2019 | diesel | 2.781342e+06 | 0.490074 | |
| etanol | 1.752876e+06 | 0.308858 | ||
| gasolina | 1.141131e+06 | 0.201068 | ||
| 2020 | diesel | 2.958581e+06 | 0.523837 | |
| etanol | 1.557749e+06 | 0.275810 | ||
| gasolina | 1.131573e+06 | 0.200353 | ||
| ma | 2018 | diesel | 1.394893e+06 | 0.587187 |
| etanol | 3.729922e+04 | 0.015701 | ||
| gasolina | 9.433583e+05 | 0.397111 | ||
| 2019 | diesel | 1.376987e+06 | 0.580183 | |
| etanol | 4.700209e+04 | 0.019804 | ||
| gasolina | 9.493781e+05 | 0.400013 | ||
| 2020 | diesel | 1.436736e+06 | 0.597999 | |
| etanol | 3.918108e+04 | 0.016308 | ||
| gasolina | 9.266547e+05 | 0.385693 | ||
| mg | 2018 | diesel | 6.797427e+06 | 0.528635 |
| etanol | 2.488315e+06 | 0.193516 | ||
| gasolina | 3.572715e+06 | 0.277849 | ||
| 2019 | diesel | 6.936059e+06 | 0.516551 | |
| etanol | 3.190915e+06 | 0.237638 | ||
| gasolina | 3.300672e+06 | 0.245812 | ||
| 2020 | diesel | 6.991245e+06 | 0.538850 | |
| etanol | 2.743684e+06 | 0.211469 | ||
| gasolina | 3.239443e+06 | 0.249680 | ||
| mt | 2018 | diesel | 2.839967e+06 | 0.675789 |
| etanol | 8.406228e+05 | 0.200032 | ||
| gasolina | 5.218573e+05 | 0.124179 | ||
| 2019 | diesel | 2.936405e+06 | 0.665582 | |
| etanol | 1.000071e+06 | 0.226682 | ||
| gasolina | 4.753091e+05 | 0.107736 | ||
| 2020 | diesel | 3.173373e+06 | 0.691247 | |
| etanol | 9.156114e+05 | 0.199445 | ||
| gasolina | 5.018128e+05 | 0.109308 | ||
| pa | 2018 | diesel | 2.298643e+06 | 0.658856 |
| etanol | 5.364742e+04 | 0.015377 | ||
| gasolina | 1.136548e+06 | 0.325767 | ||
| 2019 | diesel | 2.432123e+06 | 0.663234 | |
| etanol | 5.837772e+04 | 0.015919 | ||
| gasolina | 1.176566e+06 | 0.320847 | ||
| 2020 | diesel | 2.617836e+06 | 0.676322 | |
| etanol | 4.408535e+04 | 0.011390 | ||
| gasolina | 1.208775e+06 | 0.312289 | ||
| sp | 2018 | diesel | 1.211271e+07 | 0.397201 |
| etanol | 9.956761e+06 | 0.326503 | ||
| gasolina | 8.425692e+06 | 0.276296 | ||
| 2019 | diesel | 1.244118e+07 | 0.388027 | |
| etanol | 1.167378e+07 | 0.364093 | ||
| gasolina | 7.947691e+06 | 0.247880 | ||
| 2020 | diesel | 1.211197e+07 | 0.411572 | |
| etanol | 1.013969e+07 | 0.344552 | ||
| gasolina | 7.176931e+06 | 0.243876 | ||
| to | 2018 | diesel | 9.657228e+05 | 0.715977 |
| etanol | 3.412171e+04 | 0.025297 | ||
| gasolina | 3.489740e+05 | 0.258726 | ||
| 2019 | diesel | 1.026947e+06 | 0.720379 | |
| etanol | 3.321540e+04 | 0.023300 | ||
| gasolina | 3.654022e+05 | 0.256321 | ||
| 2020 | diesel | 1.128563e+06 | 0.742585 | |
| etanol | 3.822692e+04 | 0.025153 | ||
| gasolina | 3.529861e+05 | 0.232262 |
estados = pd.Series(combustiveis.regiao.unique()).drop(8).to_list()
fig, (ax1, ax2, ax3) = plt.subplots(nrows=3, ncols=1, figsize=(16,20))
for i in estados:
ax1.plot(np.log10(combustiveis[(combustiveis["regiao"] == i) & (combustiveis["product"] == 'gasolina')].quantity))
ax1.set_title("Venda de Gasolina por Estado", fontsize=16, pad=10)
ax1.set_ylabel("m³ (log)", fontsize=12)
ax1.legend(estados, fontsize=12)
for i in estados:
ax2.plot(np.log10(combustiveis[(combustiveis["regiao"] == i) & (combustiveis["product"] == 'diesel')].quantity))
ax2.set_title("Venda de Diesel por Estado", fontsize=16, pad=10)
ax2.set_ylabel("m³ (log)", fontsize=12)
ax2.legend(estados, fontsize=12)
for i in estados:
ax3.plot(np.log10(combustiveis[(combustiveis["regiao"] == i) & (combustiveis["product"] == 'diesel')].quantity))
ax3.set_title("Venda de Etanol por Estado", fontsize=16, pad=10)
ax3.set_ylabel("m³ (log)", fontsize=12)
ax3.legend(estados, fontsize=12)
plt.tight_layout;
fig, ax = plt.subplots(nrows=4, ncols=2, figsize=(16,16))
k = -1
for i in range(4):
for j in range(2):
k += 1
(combustiveis[(combustiveis["regiao"] == estados[k]) & (combustiveis["product"] == 'gasolina')].loc["2020-01-01":"2020-12-01"]).plot(x = "meses", y="quantity", ax=ax[i, j], color='blue')
(combustiveis[(combustiveis["regiao"] == estados[k]) & (combustiveis["product"] == 'gasolina')].loc["2019-01-01":"2019-12-01"]).plot(x = "meses", y="quantity", ax=ax[i, j], color='blue')
(combustiveis[(combustiveis["regiao"] == estados[k]) & (combustiveis["product"] == 'gasolina')].loc["2018-01-01":"2018-12-01"]).plot(x = "meses", y="quantity", ax=ax[i, j], color='blue')
(combustiveis[(combustiveis["regiao"] == estados[k]) & (combustiveis["product"] == 'gasolina')].loc["2017-01-01":"2017-12-01"]).plot(x = "meses", y="quantity", ax=ax[i, j], color='blue')
(combustiveis[(combustiveis["regiao"] == estados[k]) & (combustiveis["product"] == 'etanol')].loc["2020-01-01":"2020-12-01"]).plot(x = "meses", y="quantity", ax=ax[i, j], color='green')
(combustiveis[(combustiveis["regiao"] == estados[k]) & (combustiveis["product"] == 'etanol')].loc["2019-01-01":"2019-12-01"]).plot(x = "meses", y="quantity", ax=ax[i, j], color='green')
(combustiveis[(combustiveis["regiao"] == estados[k]) & (combustiveis["product"] == 'etanol')].loc["2018-01-01":"2018-12-01"]).plot(x = "meses", y="quantity", ax=ax[i, j], color='green')
(combustiveis[(combustiveis["regiao"] == estados[k]) & (combustiveis["product"] == 'etanol')].loc["2017-01-01":"2017-12-01"]).plot(x = "meses", y="quantity", ax=ax[i, j], color='green')
(combustiveis[(combustiveis["regiao"] == estados[k]) & (combustiveis["product"] == 'diesel')].loc["2020-01-01":"2020-12-01"]).plot(x = "meses", y="quantity", ax=ax[i, j], color='yellow')
(combustiveis[(combustiveis["regiao"] == estados[k]) & (combustiveis["product"] == 'siesel')].loc["2019-01-01":"2019-12-01"]).plot(x = "meses", y="quantity", ax=ax[i, j], color='yellow')
(combustiveis[(combustiveis["regiao"] == estados[k]) & (combustiveis["product"] == 'diesel')].loc["2018-01-01":"2018-12-01"]).plot(x = "meses", y="quantity", ax=ax[i, j], color='yellow')
(combustiveis[(combustiveis["regiao"] == estados[k]) & (combustiveis["product"] == 'diesel')].loc["2017-01-01":"2017-12-01"]).plot(x = "meses", y="quantity", ax=ax[i, j], color='yellow')
ax[i, j].set_title("Estado:" + estados[k], fontsize=14)
ax[i, j].set_xticks(np.arange(1,13))
ax[i, j].set_xlabel("Mês", fontsize=12)
blue_patch = mpatches.Patch(color='blue', label="Gasolina")
green_patch = mpatches.Patch(color='green', label="Etanol")
yellow_patch = mpatches.Patch(color='yellow', label="Diesel")
ax[i, j].legend(handles=[blue_patch, green_patch, yellow_patch])
fig.suptitle("Visualização por UF", fontsize=20)
plt.tight_layout();